Method for quickly booting a computer system

ABSTRACT

A method for quickly booting a personal computer system using boot configuration information on memory and the attached devices that was created and saved in a hard disk at the preceding boot process. The method for a quick boot process includes the steps of performing a power-on self test POST) operation when a personal computer system is powered on or a reset button is pressed; performing a normal boot process after the POST operation; saving the contents of memory and the status of the attached devices to a hard disk; checking if a reboot is requested; restoring the saved boot configuration information from the hard disk, after POST is completed during the reboot process; checking whether or not an initial device configuration file and/or an automatic batch file were changed; and executing commands in the two files and saving a newly created boot configuration information to the hard disk for future boot. The personal computer system, may reboot quickly because of omission of execution of the initial device configuration filed and the automatic batch file.

CROSS-REFERENCE TO RELATED APPLICATIONS

NOTICE: More than one reissue application has been filed for the reissueof U.S. Pat. No. 6,434,696, filed May 11, 1999. The reissue applicationsare U.S. patent application Ser. No. 11/961,567 (the presentapplication), filed Dec. 20, 2007, which is a continuation reissue ofSer. No. 10/918,293, filed Aug. 12, 2004 (now U.S. Reissued Pat. No.RE40,092), both of which are reissues of U.S. Pat. No. 6,434,696.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a method of and apparatus for booting apersonal computer system and, more particularly, for quickly booting acomputer system, in which a boot configuration information is createdand saved in a disk for future boot, and the saved boot configurationinformation is reused upon the request of the subsequent boot.

2. Description of the Related Art

FIG. 1 shows a block diagram of the system architecture for aconventional personal computer system, comprising a central processingunit (CPU) 1; a read only memory (ROM) 2 for permanent storage of basicinput output system (BIOS) and the initial states of internal devices, arandom access memory (RAM) 3 for temporary storage of information; amicro computer (MICOM) 4 for controlling peripheral devices such as akeyboard input device, a mouse input device, and a power supply 7; ahard disk (HDD) 8 for providing a secondary information storage; a diskcontroller 5 for controlling HDD; a video output display 6 fordisplaying information; and a power supply 7. When power is applied tothe computer system, the computer system starts to be booted to load anoperating system (OS) and thus is brought into a known useful state inwhich application programs can be executed. This procedure is generallycalled “booting”. An operating system is a software that providesresource management on a computer system, including basic tasks such asprocess execution, memory management, and file management. Examples areMS-DOS, Windows95, OS/2, and UNIX. Execution of user applications isbased on these basic functions of the operating system.

The boot process of an IBM PC in which MS-DOS operating system isalready installed is as follows. When a user turns the personal computerpower switch on or presses a reset button, a power-on self test (POST)is performed by ROM BIOS codes to diagnose each component of thepersonal computer. Next, a file called MSDOS.SYS is loaded and executed,and another file called IO.SYS is then loaded and executed to performcertain preliminary functions related to management of such peripheraldevices as keyboard, disk, and display. And then, a command preprocessoror COMMAND.COM is loaded into a memory that receives, interprets andexecutes user commands. A file called CONFIG.SYS that specifies devicespossibly connected to the personal computer is loaded and ASCIIstatements contained therein are executed to load device drivers andinitialize them. Finally, another ASCII file called AUTOEXEC.BAT isloaded and then programs that are listed therein are executed, therebypreparing the personal computer for use.

There two kinds of boots; “cold boots” and “warm boots”, which rely onthe state of the computer system when the boot operation is requested. A“cold boot” is performed when power is applied to the computer or areset button is pressed. When an operating system is loaded in memoryalready and the computer system is powered on already, a user mayrequest a “warm boot” by entering a predefined sequence of key strokes,e.g., <Ctrl>+<Alt>+<Del>. The BIOS codes include a plurality of computerroutines for controlling devices such as a system clock, video outputdisplay 6, disk controller 5, and keyboard and thus provide a low-levelinterface to these devices. The BIOS is generally stored in a Flash ROM.

Shortly after power on or a reset button is pressed, the CPU beginsexecuting the ROM BIOS codes. The BIOS codes for POST are, first,executed to diagnose and initialize devices attached to the computersystem and obtain the status of the devices.

When a “warm boot” is requested or a reset button is pressed, it isdesirable that the time required for the boot process is reduced toforce the computer into a ready state as quickly as possible. The bootprocess is usually called “quick boot”, which is achieved by simplifyingsome device diagnosis processes or loading the device status informationthat was obtained at the preceding boot time from a storage medium suchas disk. Because the quick boot means a boot process in which some POSToperations, e.g., memory test are skipped, the quick boot is generallyreferred to as “quick post”.

FIG. 2 is a flowchart of the quick POST in an IBM personal computersystem in which Windows95 is installed according to the conventionalart. When the computer system is powered on or a reset button is pressed(S11), the Windows95 is loaded into a memory after execution of a normalPOST process (S12). To be specific, once the POST process is performed,ASCII statements in CONFIG.SYS and AUTOEXEC.BAT are executedsequentially and WIN.COM is then executed to load Windows95. WhileWindows 3.1, a previous version of Windows95, is loaded after thepersonal computer is booted on the basis of MS-DOS, Windows95 installedPC is booted and Windows95 user interface is provided directly.

Once the boot operation is completed, a basic boot information is savedto a disk for future quick POST process (S13). After that, if a userrequests a “quick boot” to reboot the personal computer (S14), theabove-mentioned quick POST process is performed to reduce the timeneeded to complete a normal POST process. As another method, the POSTprocess execution is skipped by using a basic boot information that wascreated and saved in a disk immediately after the preceding POST processis completed.

However, the conventional quick boot relies on the POST process, e.g.,the omission of memory test. In other words, in the conventional quickbooting method, the same operations as those of normal boot process arestill performed after the quick POST process. Therefore, in case wherethere are a lot of ASCII statements in CONFIG.SYS and AUTOEXEC.BAT, thequick boot of the conventional art is not effective to reduction of theboot time.

According to the conventional booting method, in Windows95 installedpersonal computer system, working environment or all information storedin memory are saved to a disk for the subsequent quick boot. If memorysize is larger than 32 MB, the amount of data to be saved to the diskbecomes too large. As a result, the subsequent booting by reloading thesaved data into the memory may be even slower than a normal boot.

SUMMARY OF THE INVENTION

It is therefore a primary object of the present invention to provide amethod and apparatus that significantly reduces the time required forboot process after a POST operation by using a boot configurationinformation on memory and the attached devices that were created andsaved in a disk in the preceding boot process, and thereby skippingexecution of statements in an initial device configuration file and anautomatic batch file.

To achieve the object, the present invention provides a method forquickly booting a personal computer system, comprising the steps ofperforming a POST operation when the system is powered on or a resetbutton is pressed; checking if a boot configuration information that wascreated in the preceding boot process exists in a disk; saving the bootconfiguration information to the disk after execution of a POSToperation on the basis of the checking result; and loading a graphicuser interface (GUI) program.

The method for quickly booting a computer system according to thepresent invention is also characterized in that it comprises the stepsof performing a POST operation when the system is powered on or a resetbutton is pressed; restoring a boot configuration information by usingthe boot configuration information that has been saved in a disk; andloading a GUI program.

According to the quick booting method of the present invention, afterASCII statements listed in an initial device configuration file and anautomatic batch file are executed, a boot configuration information thatis resident in a memory, i.e., the status of devices and the contents ofmemory are saved into a disk. After that, when a reboot is requested, acomputer system can be booted quickly by using the stored bootconfiguration information, without execution of the initial deviceconfiguration file and the automatic batch run file.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are included to provide a furtherunderstanding of the invention, illustrate the preferred embodiment ofthis invention, and together with the description, serve to explain theprinciples of the present invention.

In the drawings:

FIG. 1 is the system architecture of a general personal computer system;

FIG. 2 is a flowchart showing the conventional method for quick POSToperation in a Windows95-installed personal computer;

FIG. 3 is a flowchart showing a method for a quick boot according to anembodiment of the present invention;

FIG. 4 is a flowchart showing a method for saving a boot configurationinformation after execution of POST operation in a Windows95-installedpersonal computer according to an embodiment of the present invention;

FIG. 5 is a flowchart showing a method for restoring a stored bootconfiguration information in a Windows95-installed personal computeraccording to an embodiment of the present invention;

FIG. 6 is a flowchart showing a method for saving the contents of memoryinto a disk according to an embodiment of the present invention; and

FIG. 7 is a flowchart showing a method for restoring the contents ofmemory according to an embodiment of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

The preferred embodiments of the present invention will be describedbelow in detail referring to the accompanying drawings.

FIG. 3 is a flowchart of the quick boot process in an IBM personalcomputer system according to an embodiment of the present invention. Theflow proceeds to step S21, in which a POST operation is performed when acomputer system is powered on or a reset button is pressed. A normalboot process of an operating system, e.g., Windows95 is then executed(S22). Next, a boot configuration information, i.e., the contents ofmemory and the status of the attached devices that was created and hasbeen resident in a memory since execution of the POST operation is savedto a disk (523). A RAM-resident program is called by a softwareinterrupt (INT in general) in modified ROM BIOS codes so as to save theboot configuration information into a disk for future boots. Since then,when a reboot is requested (S24), the POST operation is performed andthen the saved boot configuration information is retrieved from the diskin order to complete the reboot process (S25). If it is determined thateither CONFIG.SYS or AUTOEXEC.BAT was changed (S26), the changed twofiles are loaded into a memory and are then executed to form a new bootconfiguration information, which will be saved to the disk again for thesubsequent boot. In this way, if CONFIG.SYS and AUTOEXEC.BAT are notchanged, they do not need to be loaded and executed when a computersystem is booted, resulting in a quick boot.

FIGS. 4 and 5 are flowcharts respectively showing methods for saving andrestoring a boot configuration information in a Windows95-installed IBMpersonal computer according to an embodiment of the present invention.

The method for saving the boot configuration information to a disk willbe described now in detail referring to FIG. 4. When power is turned onor a reset button is pressed (S31), a cold boot or warm boot isrequested. The POST operation is, first, executed (S32) and then an INT19h service routine is called to load an operating system (S33). Bycalling the INT 19h, control is passed to a bootstrap loader which loadsthe operating system into a memory to prepare the personal computer foruse.

Next, CONFIG.SYS is loaded into the memory and statements therein areexecuted. CONFIG.SYS includes ASCII statements describing the size ofdisk buffer, the number of files that can be opened simultaneously, thenames of device drivers needed to control devices attached to thecomputer system, and so on. After executing CONFIG.SYS, another ASCIIfile called AUTOEXEC.BAT is loaded into the memory. The file-names ofprograms that a user wants to run automatically at the boot time arelisted therein, and the programs are executed (S34).

Next, a RAM-resident program is activated to replace an original INT 2Fhservice routine in the ROM BIOS codes. To do this, the interrupt Vectorfor INT 2Fh is substituted for the address of the RAM-resident program(S35). Next, WIN.COM is executed to load Windows95 into the memory(S36). The INT 2Fh service routine is called by using software systemmanagement interrupt (software SMI) during the execution of WIN.COM. Atthe interrupt point, the contents of a particular register is sent tothe RAM-resident program and then performs a prescribed functionassociated with the register contents (S37).

If the register contents is a predetermined value, e.g., 1605H, theRAM-resident program checks if there is a file that contains the bootconfiguration information in a disk (S38) and saves the current bootconfiguration information to the disk, if not (S39). WIN.COM is thenexecuted to load a GUI program of Windows95 into the memory (S41),providing a user with Windows95 interface (S42). It should be noted thatthe boot configuration information is saved to the disk immediatelybefore Windows95 loads device drivers into a memory, i.e., an extendedmemory is used to load GUI program of Windows95.

The operation of saving the boot configuration information to a disk(the step S39 of FIG. 4) is described in detail with reference to aflowchart of FIG. 6. The contents of memory block of a predeterminedsize are, first, examined and are then saved to the disk if the memoryblock is satisfied with a predetermined criterion. An address of thememory block is saved to the disk, as well. To be specific, if it isdetermined that the boot configuration information resident in a memoryneeds to be saved to the disk (S71), the INT 2Fh service routine checksif a memory segment of 64 KB is filled with ‘0’, while scanning everymemory segment (S72). If not, the contents of the memory segment aresaved to the disk (S73), together with its address (S74). The memorysegment is treated as a memory accessing unit, which is 64 KB in size inthe IBM personal computer system. And the boot configuration informationto be saved is approximately 7 MB in size, which is composed of 1 MB forsaving the software SMI, 4 MB for the video memory, and 2 MB for savinga memory area in which the interrupt vector table and some crucialprograms for system management are resided.

The next time the computer system is powered on or reset, the saved bootconfiguration information is used to boot the computer system. Themethod for restoring the boot configuration information will bedescribed now in detail referring to FIG. 5.

Once power is turned on or reset button is pressed (S51), a quick POSToperation including skip of memory test is executed (S52), and then itis checked whether or not there is any boot configuration informationthat has been saved to a disk in the preceding boot process (S52-1). Ifit is determined that a boot configuration information exists, theoperation for its restoration is performed (S53).

The process for restoring the boot configuration information isdescribed in detail referring to a flowchart of FIG. 7. First, it ischecked whether or not a current boot configuration has been changedbased on the restored boot configuration information. If there is anychange in the boot configuration, commands that are usually executed atthe boot time, for example, commands for initial setup deviceconfiguration are executed and then a newly formed boot configurationinformation is saved to the disk for future boot. Specifically, when acomputer system is resumed, it is checked if the boot configurationinformation will be restored (S81). If it is determined that the bootconfiguration information is restored, the contents of memory segments,addresses of which was saved before in the disk, are copied to thememory at their own addresses (S82). Other memory segments than therestored memory segments, become filled with ‘0’ (S83). The reason whythe contents of those segments are not restored is that they are set toall ‘0’s during the BIOS POST operation.

Once restoration of the contents of those memory segments is completed,it is checked if CONFIG.SYS and AUTOEXEC.BAT was changed (S54). If it isdetermined that either CONFIG.SYS and AUTOEXEC.BAT was changed, thebootstrap loader, the INT 19h service routine is called (S55), and thenthe both ASCII files are loaded into a memory to execute statementstherein (S56). Next, the RAM-resident program is activated to replacethe original INT 2Fh service routine (S57).

Next, WIN.COM is executed to load Windows95 into the memory (S58). TheINT 2Fh service routine is called through the software SMI during theexecution of WIN.COM (S59) and thus the RAM-resident program isexecuted. The RAM-resident program, first, checks the contents of aparticular register and then, if it is matched with a predeterminedvalue, saves the current boot configuration information that is residentin the memory to the disk (S61). The method for saving the contents ofmemory where the boot configuration information is resided is the sameas that shown in FIG. 6. Next, control is passed to WIN.COM again andthus Windows95 GUI is set up (S62), thereby preparing the computersystem for use (S63).

The reason why the boot configuration information should be restoredbefore Windows95 loads Windows95-dedicated device drivers is to reducethe amount of data on the disk that must be copied to a memory at theboot time. Because the extended memory has been not used yet at thattime, even if the size of total memory is 512 MB, memory of about 7 MBonly is saved to and restored from the disk, according to the methodsshown in FIGS. 6 and 7. Therefore, the execution of CONFIG.SYS andAUTOEXEC.BAT can be skipped by restoring the contents of memory and thestatus of devices based on the boot configuration information, therebyreducing the boot time significantly.

Though the description hereinbefore may refer to terms commonly used indescribing particular computer systems and software, such as IBMpersonal computer and Windows95 operation system, the concepts equallyapply to other systems and software.

The foregoing is provided only for the purpose of illustration andexplanation of the preferred embodiments of the present invention, sochanges, variations and modifications may be made without departing fromthe spirit and scope of the invention.

1. A method for fast booting a computer system, comprising the steps of:A. performing a power on self test (POST) of basic input output system(BIOS) when the system is powered on or reset is requested; B. checkingwhether a boot configuration information including a system bootingstate which was created while executing a previous normal bootingprocess exists or not; C. storing the boot configuration informationfrom execution of the POST operation before loading a graphic interface(GUI) program, based on the checking result; and D. loading the graphicuser interface (GUI) program.
 2. A method according to claim 1, whereinsaid step C stores the boot configuration information into a diskstorage medium.
 3. A method according to claim 1, wherein said step Cstores the boot configuration information after execution of the POSToperation is completed and before an extended memory becomes in use. 4.A method according to claim 1, wherein said step C comprises the stepsof: checking contents of a memory block of a predetermined size; storingthe contents of the memory block into a disc storage medium based on thechecking result; and storing the address of the stored memory block inthe disc storage medium.
 5. A method according to claim 1, wherein theboot configuration information in which system booting state is includedcomprises states of memory and hardware.
 6. A method for fast booting acomputer system, comprising the steps of: A. performing a power on selftest (POST) of basic input output system (BIOS) when the system ispowered on or reset is requested; B. resuming a boot configurationinformation including a system booting state by using the bootconfiguration information which was stored while executing a previousnormal boot process; and C. loading a graphic user interface (GUI)program.
 7. A method according to claim 6, wherein said step B furthercomprises the steps of: checking if a designated boot configurationinformation is different from the resuming boot configurationinformation; executing an initial driving program based on a modifiedconfiguration information; and updating the boot configurationinformation after said execution.
 8. A method according to claim 6,wherein said step B comprises the steps of: determining whether toresume said stored boot configuration information; resuming the contentsof memory blocks, addresses of which have been stored while executing aprevious normal booting process; and writing zeros into other memoryblocks than the resumed memory blocks.
 9. A method according to claim 6,wherein said step B restores said stored boot configuration informationbefore an extended memory becomes in use.
 10. A method for quicklybooting a computer system in which Windows operating system isinstalled, comprising the steps of: A. performing a power on self test(POST) of basic input output system (BIOS) when the system is powered onor reset is requested; B. checking whether a boot configurationinformation including a system booting state which was created whileexecuting a previous normal boot process exists or not; C. storing thecurrent boot configuration information, if there is no stored bootconfiguration information; D. performing the POST operation when thecomputer system is rebooted; E. resuming the stored boot configurationinformation; and F. updating the boot configuration information before agraphic user interface (GUI) program is loaded, if a designated bootconfiguration information is different from the boot configurationinformation.
 11. A method according to claim 10, wherein said step Bcalls an interrupt for bootstrap loader to check if the bootconfiguration information which was created while executing a previousnormal booting process.
 12. A method according to claim 10, wherein saidstep F determines whether or not the designated boot configurationinformation is different from the resumed boot configuration informationbased on changes of CONFIG.SYS file and/or AUTOEXEC.BAT file.
 13. Amethod for supporting fast booting a computer system throughstoring/resuming a memory status of the system, comprising the steps of:checking whether to store a memory contents status; checking memorycontents of a certain unit of the memory; selectively storing contentswritten in an area necessary for system operation based on the memorycontents checking result; and resuming the stored contents for fastbooting.
 14. A method according to claim 13, wherein the certain unit iscomposed of segment having 64 bytes.
 15. A method according to claim 13,wherein the storing step stores the contents if a value in a memoryblock is not ‘0’, and does not store the contents if the value is ‘0’.16. A method according to claim 13, wherein the storing step stores anaddress of a memory block if value of a memory block is not ‘0’, anddoes not store the address if the value is ‘0’.
 17. The method accordingto claim 13, wherein the resuming step resumes pre-stored memorycontents of the certain unit while writing ‘0’ in a remainder of thecertain unit.
 18. A method according to claim 13, wherein the resumingstep resumes the stored contents belonging to a corresponding segment ifthe system is resumed from a hibernation state to a normal state, anddoes not resume a remaining portion of the segment.
 19. A method forfast booting a computer system, the method comprising: performing apower on self test (POST) of basic input output system (BIOS) when thecomputer system is powered on or reset is requested; checking whether aboot configuration information created while executing a previous normalbooting process exists or not, wherein the boot configurationinformation comprises selected portions of main memory contentsindicative of a status of hardware; and booting a computer based on theboot configuration information in response to the checking after thePOST operation.
 20. The method of claim 19, further comprising: loadinga graphic user interface (GUI) program in response to the checking. 21.The method of claim 19, wherein the boot configuration information isstored in uncompressed form.
 22. The method of claim 19, furthercomprising: restoring the boot configuration information from a diskstorage medium.
 23. The method of claim 22, wherein the restoringrestores the boot configuration information before an extended memorybecomes in use.
 24. The method of claim 19, wherein the checkingincludes checking the boot configuration information on a block-by-blockbasis.